/************************************************
 *** Datei: IDrone.h
 ***
 *** Erstellt am: 16.05.2012
 ***       Autor: Max Stark <Max.Stark88@googlemail.com>
 ***	 Version: 1.0
 ***	
 *** Beschreibung:
 *** <hier Beschreibung einfuegen>
 ************************************************/

#ifndef IDRONE_H_
#define IDRONE_H_


#include <vector>
#include <string>
using namespace std;

#include "IDroneNavData.h"
#include "IDroneVideoData.h"
#include "IDroneController.h"

class IDrone {

protected:
	vector<IDroneController*>* 	inputDeviceList;
	IDroneController* 			droneController;

public:
	virtual void connectDrone() = 0;
	virtual void disconnectDrone() = 0;

	virtual void setDroneController(IDroneController* droneController) = 0;
	virtual IDroneController* getDroneController() = 0;
	virtual void addDroneController(IDroneController* droneController) = 0;
	virtual vector<IDroneController*>* getInputDeviceList() = 0;

	// Info-Methoden
	virtual string getDroneModelName() = 0;
	virtual bool isConnected() = 0;
	virtual IDroneNavData* getNavData() const = 0;
	virtual IDroneVideoData* getVideoData() const = 0;
};

#endif /* IDRONE_H_ */
